namespace CShipBasic.oop
{
    public class Student
    {
        public int id;
        public string name;
        public static int num = 100;

        public Student()
        {
        }
        
        /// <summary>
        /// C# 静态构造函数用于初始化静态字段。它还可以用于执行任何只能执行一次的操作。它在创建第一个实例或引用任何静态成员之前自动调用
        /// C# 静态构造函数要记住的要点:
        /// C# 静态构造函数不能有任何修饰符或参数。
        /// C# 静态构造函数被隐式调用。不能显式调用它。
        /// </summary>
        static Student()
        {
            num = 250;
        }

        public Student(int id, string name)
        {
            this.id = id;
            this.name = name;
        }
        
        // C# 析构函数不能有参数。此外，修饰符不能应用于析构函数 --- 这里测试没生效
        ~Student()
        {
            Console.WriteLine("做一些销毁的操作～");
        }

        public static int testStaticMethod(int i, int j)
        {
            return i*j;
        }
    }
    
    /// <summary>
    /// 在C#中，类和结构是用于创建类实例的蓝图。结构用于轻量级对象，例如颜色、矩形、点等。与类不同，C#中的结构是值类型而不是引用类型
    /// 注意: Struct 不支持继承。但它可以实现接口。
    /// </summary>
    public struct People
    {
        public int age;
        public string name;

        public People(int age, string name)
        {
            this.age = age;
            this.name = name;
        }
    }
}

